package cn.modoumama.common.tools;

import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Map;

/** 
 * 验证对象是否为空<br>
 *     
 * 创建人：邓强   <br>
 * 创建时间：2018/5/10/010 9:06    <br>
 * @version   V1.0      
 */  
public class VerifyObject {
  public static boolean verifyString(String str) {
    if (StringUtils.isNotBlank(str)) {
      return true;
    }
    return false;
  }

  public static <E> boolean verifyCollection(Collection<E> c) {
    if (c != null && !c.isEmpty()) {
      return true;
    }
    return false;
  }

  public static <E> boolean verifyArray(E[] a) {
    if ((a != null) && (a.length > 0)) {
      return true;
    }
    return false;
  }

  public static boolean isEmpty(Object o) throws IllegalArgumentException {
    if (o == null) return true;

    if ((o instanceof String)) {
      if (((String)o).length() == 0)
        return true;
    }
    else if (o instanceof Collection) {
      if (((Collection<?>)o).isEmpty())
        return true;
    }
    else if (o.getClass().isArray()) {
      if (Array.getLength(o) == 0)
        return true;
    }
    else if (o instanceof Map) {
      if (((Map<?,?>)o).isEmpty())
        return true;
    }
    return false;
  }

  public static boolean isNotEmpty(Object o){
    return !isEmpty(o);
  }

  public static boolean isNotBlank(Object o) {
    return !isBlank(o);
  }

  public static boolean isNumber(Object o) {
    if (o == null) return false;
    if ((o instanceof Number)) {
      return true;
    }
    if (o instanceof String) {
      String str = (String)o;
      if (str.length() == 0) return false;
      if (str.trim().length() == 0) return false;
      try{
        Double.parseDouble(str);
        return true;
      } catch (NumberFormatException e) {
        return false;
      }
    }
    return false;
  }

  public static boolean isBlank(Object o) {
    if (o == null)
      return true;
    if ((o instanceof String)) {
      String str = (String)o;
      return isBlank(str);
    }
    return false;
  }

}